#include <cstdio>
#include <iostream>
#include <queue>
using namespace std;
//#define int long long
#define fread(x) ios::sync_with_stdio(x)

struct p{
	int x,y;
};

int arr[30][40],vis[30][40];
int dx[] = {-1 ,1,0,0};
int dy[] = {0,0,1,-1};

void bfs(p start){
	queue<p> q;
	q.push(start);
	while(q.size()){
		p tp = q.front();
		q.pop();
		
		for(int i=0;i<=3;i++){
			int tx = tp.x + dx[i];
			int ty = tp.y + dy[i];
			if(tx < 0 || ty < 0 || tx >= 30 || ty >= 40 || vis[tx][ty] == 1 || arr[tx][ty] == 1){
				continue;
			}
			vis[tx][ty] = 1;
			arr[tx][ty] = 2;
			q.push((p){tx,ty});
			
		}
	}

}
//void dosome(int x,int y){
//	
//	
//}
signed main() {
	fread(0);
	for (int i = 0; i < 30; i++)
		for (int j = 0; j < 40; j++) {
			scanf("%1d",&arr[i][j]);
		}
	
	for(int j=0;j<=40;j++){
		if(arr[0][j] == 0){
			arr[0][j] = 2;
		}
	}
//	for (int i = 0; i < 30; i++)
//		for (int j = 0; j < 40; j++){
//			if(arr[i][j] == 2){
//				dosome(i,j);
//			}
//		} 
	for(int j=0;j<40;j++){
//		TODO
		if(arr[0][j] == 2){
			//TODO
			bfs((p){0,j});	

		}
	}
	
//	bfs((p){0,0});
	int cnt = 0;
	for (int i = 0; i < 30; i++){
		for (int j = 0; j < 40; j++) {
			cout << arr[i][j] <<" ";
			if(arr[i][j] == 2){
				//TODO
				cnt ++;
			}
		}
			cout << endl;
	}
	cout << cnt << endl;
	return 0;
}
